1. 一些概念

  • SSO(SingleSignOn,SSO,单点登录):
    • 通俗的讲就是在一处登录,就可以在相关的所有网站/服务器上具有授权
    • 当用户在身份认证服务器上登录一次以后, 即可获得访问单点登录系统中其他关联系统和应用软件的权限
    • 同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的, 这意味着在多个应用系统中, 用户只需一次登录就可以访问所有相互信任的应用系统
    • 这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的登录方式
    • 对于分布式系统而言,可能是必须的
  • Authentication VS Authorisation
    • Authentication:
      • 身份鉴别,以下简称 认证,确认你是否可以访问本系统
      • 解决你是谁的问题,例如你是不是系统的用户
    • Authorisation:
      • 资源访问 授权,确定你可以访问本系统什么级别的资源
      • 解决你有啥权限的问题,例如在系统里你是否可以编辑内容,是否是超级管理员等
    • 在实际应用可能这两个词会有混淆的情况,即认证和鉴权一并完成
  • Authorization Server/Identity Provider(IDP)
    • 把负责 认证的服务 称为 AuthorizationServer 或者 IdentityProvider
  • Service Provider(SP)/Resource Server
    • 把负责提供资源(API 调用)的服务称为 ResourceServer 或者 ServiceProvider
  • Token: 有某种规则生成的一串信息,不能等同于密码
    • 跟密码的差异
      • 短期,生命期很短,过期后自动无效
      • 用户无法自行修改, Token一般由token生成的服务器给出
      • 可以被数据所有者撤销
      • 有权限范围, token可以被当作身份鉴别,绑定一定的权限
  • 参考资料